<?php
/* -----------------------------------------------------------------------------------------
   $Id: moneyorder.php 135 2013-09-22 07:30:55Z phone.mueller@googlemail.com $   

   XT-Commerce - community made shopping
   http://www.xt-commerce.com

   Copyright (c) 2003 XT-Commerce
   -----------------------------------------------------------------------------------------
   based on: 
   (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
   (c) 2002-2003 osCommerce(moneyorder.php,v 1.10 2003/01/29); www.oscommerce.com 
   (c) 2003	 nextcommerce (moneyorder.php,v 1.7 2003/08/24); www.nextcommerce.org

   Released under the GNU General Public License 
   ---------------------------------------------------------------------------------------*/

class moneyorder {
	var $code, $title, $description, $enabled, $db;

	function __construct() {
		global $order, $db;

		$this->code = 'moneyorder';
		$this->title = MODULE_PAYMENT_MONEYORDER_TEXT_TITLE;
		$this->description = MODULE_PAYMENT_MONEYORDER_TEXT_DESCRIPTION;
		$this->sort_order = MODULE_PAYMENT_MONEYORDER_SORT_ORDER;
		$this->enabled = ((MODULE_PAYMENT_MONEYORDER_STATUS == 'True') ? true : false);
		$this->info = MODULE_PAYMENT_MONEYORDER_TEXT_INFO;
		$this->db = $db;
		if((int)MODULE_PAYMENT_MONEYORDER_ORDER_STATUS_ID > 0)
			$this->order_status = MODULE_PAYMENT_MONEYORDER_ORDER_STATUS_ID;

		if (is_object($order))
			$this->update_status();

		$this->email_footer = MODULE_PAYMENT_MONEYORDER_TEXT_EMAIL_FOOTER;
	}

	function update_status() {
		global $order;

		if (($this->enabled == true) && ((int) MODULE_PAYMENT_MONEYORDER_ZONE > 0)) {
			$check_flag = false;
			$check = $this->db->db_query("SELECT zone_id FROM ".TABLE_ZONES_TO_GEO_ZONES." WHERE geo_zone_id = '".MODULE_PAYMENT_MONEYORDER_ZONE."' AND zone_country_id = '".$order->billing['country']['id']."' ORDER BY zone_id");
			while (!$check->EOF) {
				if ($check->fields['zone_id'] < 1) {
					$check_flag = true;
					break;
				}
				elseif ($check->fields['zone_id'] == $order->billing['zone_id']) {
					$check_flag = true;
					break;
				}
				$check->MoveNext();
			}

			if ($check_flag == false) {
				$this->enabled = false;
			}
		}
	}

	function javascript_validation() {
		return false;
	}
	
	function rabatt() {
		global $order;
		$do = false;
				
		$table = explode(',',  MODULE_ORDER_TOTAL_PAYMENT_TYPE);
		for($i = 0, $n = count($table); $i < $n; $i++) {
			if($this->code == $table[$i]) 
				$do = true;
		}
		if($do) {
			$discount_table = (explode(':', MODULE_ORDER_TOTAL_PAYMENT_PERCENTAGE));
			if ($order->info['total'] >= $discount_table[1])
				$percent = -$discount_table[1];
		}
		
		if(isset($percent))
			return $this->cost = abs($percent).'% '.($percent < 0 ? 'Skonto' : 'Zuschlag');
	}
	
	function selection() {
		return array ('id' => $this->code, 'module' => $this->title, 'description' => $this->info, 'module_cost' => $this->rabatt());
	}

	function pre_confirmation_check() {
		return false;
	}

	function confirmation() {
		return array ('title' => MODULE_PAYMENT_MONEYORDER_TEXT_DESCRIPTION);
	}

	function process_button() {
		return false;
	}

	function before_process() {
		return false;
	}

	function after_process() {
		global $insert_id;
		if ($this->order_status)
			$this->db->db_query("UPDATE ".TABLE_ORDERS." SET orders_status='".$this->order_status."' WHERE orders_id = '".$insert_id."'");

	}

	function get_error() {
		return false;
	}

	function check() {
		if (!isset($this->_check)) {
			$check = $this->db->db_query("SELECT configuration_value FROM ".TABLE_CONFIGURATION." WHERE configuration_key = 'MODULE_PAYMENT_MONEYORDER_STATUS'");
			$this->_check = $check->_numOfRows;
		}
		return $this->_check;
	}

	function install() {
		$this->db->db_query("INSERT INTO ".TABLE_CONFIGURATION." (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) VALUES ('MODULE_PAYMENT_MONEYORDER_STATUS', 'True', '6', '1', 'cfg_select_option(array(\'True\', \'False\'), ', now());");
		$this->db->db_query("INSERT INTO ".TABLE_CONFIGURATION." (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) VALUES ('MODULE_PAYMENT_MONEYORDER_ALLOWED', '',   '6', '0', now())");
		$this->db->db_query("INSERT INTO ".TABLE_CONFIGURATION." (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, date_added) VALUES ('MODULE_PAYMENT_MONEYORDER_PAYTO', '', '6', '1', 'cfg_textarea(', now()); ");
		$this->db->db_query("INSERT INTO ".TABLE_CONFIGURATION." (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) VALUES ('MODULE_PAYMENT_MONEYORDER_SORT_ORDER', '0', '6', '0', now())");
		$this->db->db_query("INSERT INTO ".TABLE_CONFIGURATION." (configuration_key, configuration_value, configuration_group_id, sort_order, use_function, set_function, date_added) VALUES ('MODULE_PAYMENT_MONEYORDER_ZONE', '0',  '6', '2', 'get_zone_class_title', 'cfg_pull_down_zone_classes(', now())");
		$this->db->db_query("INSERT INTO ".TABLE_CONFIGURATION." (configuration_key, configuration_value, configuration_group_id, sort_order, set_function, use_function, date_added) VALUES ('MODULE_PAYMENT_MONEYORDER_ORDER_STATUS_ID', '0', '6', '0', 'cfg_pull_down_order_statuses(', 'get_order_status_name', now())");
	}

	function remove() {
		$this->db->db_query("DELETE FROM ".TABLE_CONFIGURATION." WHERE configuration_key in ('".implode("', '", $this->keys())."')");
	}

	function keys() {
		return array ('MODULE_PAYMENT_MONEYORDER_STATUS', 'MODULE_PAYMENT_MONEYORDER_ALLOWED', 'MODULE_PAYMENT_MONEYORDER_ZONE', 'MODULE_PAYMENT_MONEYORDER_ORDER_STATUS_ID', 'MODULE_PAYMENT_MONEYORDER_SORT_ORDER', 'MODULE_PAYMENT_MONEYORDER_PAYTO');
	}
}
?>